#include <iostream>
#include <fstream>
#include "Compresor"

/**
Programa de prueba para la renormalización
*/


using namespace std;

void show_binary(unsigned u);

int main() {
	ofstream archivo("salida.txt");
	obitstream bitwiseFile(&archivo);
	Compresor ejem(&bitwiseFile);
	ushort unpiso, untecho;

	cout<<"Techo por defecto: "<<ejem.techo()<<endl;
	cout<<"Piso por defecto: "<<ejem.piso()<<endl;

	for (int i = 1; i<15;i++){
		cout<<"Ingrese techo ["<<ejem.piso()<<","<<ejem.techo()<<"]:";
		cin>>untecho;
		ejem.techo(untecho);
		cout<<endl;
		cout<<"Ingrese piso: ["<<ejem.piso()<<","<<untecho<<"]:";
		cin>>unpiso;
		cin.ignore();
		ejem.piso(unpiso);
		cout<<"Techo en binario: ";
		show_binary(ejem.techo());
		cout<<"Piso en binario: ";
		show_binary(ejem.piso());
		cout<<"Renormalizando.. "<<endl;
		ejem.renormalizar();
		cout<<"Nuevo techo: "<<ejem.techo()<<endl<<"Techo en binario: ";
		show_binary(ejem.techo());
		cout<<"Nuevo piso: "<<ejem.piso()<<endl<<"Piso en binario: ";
		show_binary(ejem.piso());
	}
	ejem.finalizar();
	archivo.close();
	cout<<endl<<"Presione ENTER para terminar."<<endl;
	cin.get();
	return 0;


}

void show_binary(unsigned u) {
	for(unsigned n = USHORT_MAXBIT; n > 0; n>>=1) cout << !!(u & n);
	cout<<endl;
}

